{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "7ebed8fa-8412-4e27-8aa2-763cf36160e4",
   "metadata": {},
   "source": [
    "Chapter 04\n",
    "\n",
    "# 多项式回归\n",
    "Book_7《机器学习》 | 鸢尾花书：从加减乘除到机器学习"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "4082fbbc-3c2b-4ff3-92de-e265bd54620d",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from sklearn.pipeline import Pipeline\n",
    "from sklearn.preprocessing import PolynomialFeatures\n",
    "from sklearn.linear_model import LinearRegression"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "428920dc-36e0-43f9-88c7-475cae314d98",
   "metadata": {},
   "outputs": [],
   "source": [
    "def true_fun(X):\n",
    "    return np.cos(1.5 * np.pi * X)\n",
    "\n",
    "np.random.seed(0)\n",
    "\n",
    "n_samples = 50\n",
    "degrees = [1, 2, 3, 4]\n",
    "# degrees = [12, 13, 14, 15]\n",
    "\n",
    "X = np.sort(np.random.rand(n_samples))\n",
    "y = true_fun(X) + np.random.randn(n_samples) * 0.1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "9dc1ad13-43eb-41ab-b605-38f48e4f568f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABGQAAAG8CAYAAACYIXMgAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAA9hAAAPYQGoP6dpAACRvklEQVR4nOzdd1iV9f/H8edhiYogkqbiyG250LKy0hRL0UyrX1ZamS3Nhtre2rS0ZdnQyrRytKdfxUWmTWcOrHCkmeYCBRcqcP/++ASIAjLOOfe5z3k9rsuLA5zxBr1f3vf7fIbLsiwLERERERERERHxmiC7CxARERERERERCTRqyIiIiIiIiIiIeJkaMiIiIiIiIiIiXqaGjIiIiIiIiIiIl6khIyIiIiIiIiLiZWrIiIiIiIiIiIh4mRoyIiIiIiIiIiJepoaMiIiIiIiIiIiXqSEjIiIiIiIiIuJlasg41OTJk3G5XHl/wsPDqVmzJl26dOG5555j586ddpfoFf/88w/Dhw/nwgsvpGrVqrhcLiZPnmx3WSJ+Q1ljfPHFF/Tr14/GjRtTsWJFTjvtNK699lrWrVtnd2kifkFZY8ybN4+LL76Y2rVrU6FCBWrUqEF8fDwzZ860uzQRv6CsKdxjjz2Gy+WiZcuWdpcScNSQcbhJkybx888/M3fuXN544w3i4uIYPXo0p59+OvPmzbO7PI9bv349U6dOJSwsjJ49e9pdjojfCvSsGT16NAcPHuTRRx8lMTGRZ555hhUrVtCuXTuSk5PtLk/EbwR61qSmptKiRQteeeUV5syZw4QJEwgNDeWSSy5hypQpdpcn4jcCPWuO9dtvv/Hiiy9y6qmn2l1KQHJZlmXZXYSU3uTJk7nxxhtZsmQJZ511VoHv/f3331xwwQXs3buXdevWef3gOnToEBUrVvTKa+Xk5BAUZPqKS5cupX379kyaNImBAwd65fVF/J2yxti5cyc1atQo8LVt27Zx2mmnMWDAAN59912v1CHir5Q1RTt69CgNGjSgYcOGLFy40LY6RPyBsqagrKws2rdvT6dOnVi5ciW7d+9mzZo1Xq0h0GmEjB+qV68eL730Evv27WPChAkFvrd06VJ69+5NtWrVCA8Pp23btnzyyScnPMcPP/xAhw4dCA8PJzY2lscff5x3330Xl8vFpk2b8u532mmn0atXL7744gvatm1LeHg4Tz75JADbt29n8ODB1KlTh7CwMBo0aMCTTz5JVlZWgdc6cuQIzzzzDM2bN6dChQpUr16dG2+8kV27dp30Z81txoiI9wVS1hzfjAGoXbs2derUYcuWLSX5dYlIGQVS1hQmNDSUqlWrEhISUqbHi0jJBGLWPP/886SlpfHss8+W4jcl7qRk91M9e/YkODi4wDsp3333HQkJCZxzzjmMHz+eqKgoPvroI66++moOHjyYN6pk1apVXHzxxTRt2pT333+fSpUqMX78+CKHyi5fvpzff/+dxx57jAYNGlC5cmW2b9/O2WefTVBQECNGjKBRo0b8/PPPPPPMM2zatIlJkyYBZoRLnz59WLRoEQ888ADnnXcemzdvZuTIkXTu3JmlS5fa+q6UiBQvkLNm48aNbN68mcsuu6xMvzsRKblAy5qcnBxycnLYuXMnEyZMICUlhdGjR5f/FykixQqkrFm7di3PPPMMX3zxBREREe75BUrpWeJIkyZNsgBryZIlRd7n1FNPtU4//fS8z5s3b261bdvWOnr0aIH79erVy6pVq5aVnZ1tWZZl9e3b16pcubK1a9euvPtkZ2dbZ5xxhgVYf/31V97X69evbwUHB1t//vlngeccPHiwFRERYW3evLnA11988UULsJKTky3Lsqzp06dbgPX5558XuN+SJUsswHrzzTdL8Nso+JhJkyaV+DEiUjxlTeGOHj1qde7c2YqMjLT+/vvvUj1WRE6krCmoe/fuFmABVmRkpPXFF1+U6HEiUjxlTX5d55xzjtWvX7+8r1144YVWixYtin2cuJ/me/gx65jlgdavX88ff/zBtddeC5j5grl/evbsyb///suff/4JwPfff098fDynnHJK3uODgoK46qqrCn2d1q1b07Rp0wJfmzFjBl26dKF27doFXqtHjx55r5F7v6pVq3LppZcWuF9cXBw1a9ZkwYIFbvt9iIhnBFrWWJbFzTffzKJFi/jggw+oW7duiR8rImUXSFkzbtw4Fi9ezNdff0337t25+uqrmT59esl+USJSLoGQNS+//DLr1q1j7NixpfrdiPtpypKfOnDgAKmpqbRq1QqAHTt2AHDfffdx3333FfqY3bt3A2aF/8IWsSpqYatatWqd8LUdO3bw7bffEhoaWuxr7dixg7179xIWFlbs/UTENwVa1liWxS233MKUKVN4//336dOn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Tq5dvEtZ4x3uyBqNkBERERERERER8TI1ZEREREREREREvEwNGRERERERERERL1NDRkRERERERETEy9SQERERERERERHxMjVkRERERERERES8TA0ZEREREREREREvU0NGRERERERERMTL1JAREREREREREfEyNWRERERERERERLxMDRkRDxk4cCAulwuXy0VoaCinnnoqF198Me+99x45OTklfp7JkydTtWpVzxUqIo6mrBERb1DWiIg3BFrWqCEjASUlBWbNgnXrvPN6CQkJ/Pvvv2zatIlZs2bRpUsXhg0bRq9evcjKyvJOESLidcoaEfEGZY2IeIOyxnPUkJGAkJYGCT0smjWDnj2haVPz+Z49nn3dChUqULNmTWJjY2nXrh2PPPIIX3/9NbNmzWLy5MkAvPzyy7Rq1YrKlStTt25dbr/9dvbv3w/AggULuPHGG0lPT8/rFD/xxBMATJkyhbPOOosqVapQs2ZN+vfvz86dOz37A4lIsZQ1IuINyhoR8QZljeepISMBof+1FkkLs4jptYLYIfOJ6bWCpIVZ9Otveb2W+Ph42rRpwxdffAFAUFAQr732GmvWrOH9998nKSmJBx54AIDzzjuPsWPHEhkZyb///su///7LfffdB8CRI0d4+umnWblyJV999RV//fUXAwcO9PrPIyL5lDUi4g3KGhHxBmWN54XY9soiXpKSArMTXcT0WkNEi20A/310MXtGHOvWQZMm3q2pefPmrFq1CoDhw4fnfb1BgwY8/fTTDBkyhDfffJOwsDCioqJwuVzUrFmzwHPcdNNNebcbNmzIa6+9xtlnn83+/fuJiIjwys8hIvmUNSLiDcoaEfEGZY13aISM+L0NG8zH8LppBb4eXjcVgPXrvV0RWJaFy+UC4LvvvuPiiy8mNjaWKlWqMGDAAFJTUzlw4ECxz7FixQr69OlD/fr1qVKlCp07dwbg77//9nT5IlIIZY2IeIOyRkS8QVnjHWrIiN9r1Mh8zNxSrcDXM7fEANC4sbcrgt9//50GDRqwefNmevbsScuWLfn8889ZtmwZb7zxBgBHjx4t8vEHDhygW7duREREMGXKFJYsWcKXX34JmGF4IuJ9yhoR8QZljYh4g7LGOzRlSfxe06bQPcEiKakl4CK8biqZW2LISGpB9wSLJk1cXq0nKSmJ1atXc/fdd7N06VKysrJ46aWX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WRK/Udqt3aQQffvC+efDTTeZ1QIfeMDuikR8jrJGRLxBWSMi3qCssZcaMuI3oqMhcZbmNpZb7dowaxa8+Sbce69Z/FdE8ihrRMQblDUi4g3KGnupISN+p0kTzWssN5cL7rgDzjkH2re3uxoRn6SsERFvUNaIiDcoa+yhNWREpGhNm9pdgYiIiIiIiF9SQ0ZERERERERExMvUkBERERERERER8TI1ZEREREREREREvEwNGRERERERERERL1NDRkRERERERETEy9SQERERERERERHxMjVkRERERERERES8TA0ZEREREREREREvU0NGRERERERERMTL1JAREREREREREfEyNWRERERERERERLxMDRkRERERERERES9TQ0ZERERERERExMvUkBERERERERER8TI1ZEREREREREREvEwNGRERERERERERL1NDRkRERERERETEy9SQERERERERERHxMjVkRERERERERES8TA0ZEREREREREREvU0NGRERERERERMTL1JAREREREREREfEyNWRERERERERERLxMDRkREREREZH/b+cOWZprwDCO38qLGJxGRbAviGjQbrb4Pcx+BaOs+QFWjWIQg0EE0TLsgggrNhcEw86bfOvrg3Idzp7fL66cu+wKf84GECbIAAAAAIQJMgAAAABhggwAAABAmCADAAAAECbIAAAAAIQJMgAAAABhggwAAABAmCADAAAAECbIAAAAAIQJMgAAAABhggwAAABAmCADAAAAECbIAAAAAIQJMgAAAABhggwAAABAmCADAAAAECbIAAAAAIQJMgAAAABhggwAAABAmCADAAAAECbIAAAAAIQJMgAAAABhggwAAABAmCADAAAAECbIAAAAAIQJMgAAAABhggwAAABAmCADAAAAECbIAAAAAIQJMgAAAABhggwAAABAmCADAAAAECbIAAAAAIQJMgAAAABhggwAAABAmCADAAAAECbIAAAAAIQJMgAAAABhggwAAABAmCADAAAAECbIAAAAAIQJMgAAAABhggwAAABAmCADAAAAECbIAAAAAIQJMgAAAABhggwAAABAmCADAAAAECbIAAAAAIQJMgAAAABhggwAAABAmCADAAAAEPZPGw9tmqaqqt7f39t4PPBNX9/Rr+9s19ga6AZbA6R0eW9sDXTHd7emlSAzmUyqqmpjY6ONxwN/aDKZ1MrKSttn/DFbA91ia4CULu6NrYHu+b+tmWtayMPT6bTG43H1er2am5tLPx74pqZpajKZ1Pr6es3Pd+8XjrYGusHWACld3htbA93x3a1pJcgAAAAA/M26lYUBAAAAZoAgAwAAABAmyAAAAACECTIAAAAAYYIMAAAAQJggAwAAABAmyAAAAACECTL8yNvbW62trdXJycl/n93f39fCwkJdXV21eBkwS2wNkGBrgARbw5e5pmmato+g2y4vL+vw8LDu7u6q3+/Xzs5OHRwc1GAwaPs0YIbYGiDB1gAJtoYqQYZfcnR0VNfX17W7u1uj0ageHh5qcXGx7bOAGWNrgARbAyTYGgQZfsXHx0dtbm7W6+trPT4+1tbWVtsnATPI1gAJtgZIsDX4Dxl+xfPzc43H45pOp/Xy8tL2OcCMsjVAgq0BEmwN3pDhxz4/P2tvb6+2t7er3+/X6elpPT091erqatunATPE1gAJtgZIsDVUCTL8guPj4zo/P6/RaFRLS0u1v79fvV6vLi4u2j4NmCG2BkiwNUCCraHKT5b4oZubmxoMBjUcDmt5ebnm5+drOBzW7e1tnZ2dtX0eMCNsDZBga4AEW8MXb8gAAAAAhHlDBgAAACBMkAEAAAAIE2QAAAAAwgQZAAAAgDBBBgAAACBMkAEAAAAIE2QAAAAAwgQZAAAAgDBBBgAAACBMkAEAAAAIE2QAAAAAwv4FBWm/CkHCiuMAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 1400x500 with 4 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(14, 5))\n",
    "for i in range(len(degrees)):\n",
    "    ax = plt.subplot(1, len(degrees), i + 1)\n",
    "\n",
    "    plt.setp(ax, xticks=(), yticks=())\n",
    "\n",
    "    polynomial_features = PolynomialFeatures(degree=degrees[i],\n",
    "                                             include_bias=False)\n",
    "\n",
    "    linear_regression = LinearRegression()\n",
    "    pipeline = Pipeline([(\"polynomial_features\", polynomial_features),\n",
    "                         (\"linear_regression\", linear_regression)])\n",
    "    \n",
    "    pipeline.fit(X[:, np.newaxis], y)\n",
    "\n",
    "    X_test = np.linspace(0, 1, 100)\n",
    "    plt.plot(X_test, pipeline.predict(X_test[:, np.newaxis]), \n",
    "             color = 'r', label=\"Fitted\")\n",
    "\n",
    "    plt.scatter(X, y, edgecolor='b', s=20, label=\"Data\")\n",
    "    plt.xlabel(\"x\")\n",
    "    plt.ylabel(\"y\")\n",
    "    plt.xlim((0, 1))\n",
    "    plt.ylim((-2, 2))\n",
    "    plt.legend(loc=\"best\")\n",
    "\n",
    "    plt.title(\"Degree {}\".format(degrees[i]))\n",
    "plt.show()\n",
    "\n",
    "# =============================================================================\n",
    "# reference: https://scikit-learn.org/stable/auto_examples/model_selection/plot_underfitting_overfitting.html\n",
    "# ============================================================================="
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
